The Development of Type Systems for Object-Oriented Languages

Kathleen Fisher, Computer Science Department, Stanford University, Stanford, CA 94305, kfisher@cs.stanford.edu
(Supported in part by a Fannie and John Hertz Foundation Fellowship and NSF Grant CCR-9303099.)

John C. Mitchell, Computer Science Department, Stanford University, Stanford, CA 94305
(Supported in part by NSF Grant CCR-9303099 and the Wallace F. and Lucille M. Davis Faculty Scholarship.)

Abstract

This paper, which is partly tutorial in nature, summarizes some basic research goals in the study and development of typed object-oriented programming languages. These include both immediate repairs to problems with existing languages and the long-term development of more flexible and expressive, yet type-safe, approaches to program organization and design. The technical part of the paper is a summary and comparison of three object models from the literature. We conclude by discussing approaches to selected research problems, including changes in the type of a method from super class to sub-class and the use of types that give information about the implementations as well as the interfaces of objects. Such implementation types seem essential for adequate typing of binary operations on objects, for example.